﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Web.Security;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Text;
using mamnontuoitho7.AppCode;
using System.Data;

namespace mamnontuoitho7.module
{
    public partial class Contact : System.Web.UI.Page
    {
        //static string _strCap;
        private mamnontuoitho7.AppCode.Contact _contact = new mamnontuoitho7.AppCode.Contact();
        Class _school = new Class();

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    // Session["captcha"] = null;
                    CreateCaptcha();

                    LoadShoolInformation();
                }

                Session["Common_articleTypeID"] = "1";
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Response.Redirect(ConstantClass._errorLoginPage);
            }
        }

        /// <summary>
        /// Load information of shool
        /// </summary>
        private void LoadShoolInformation()
        {
            DataRow _datarow = _school.GetShoolInformation();

            lblShoolName.Text = _datarow["Name"].ToString();
            lblAddress.Text = _datarow["Address"].ToString();
            lblEmail.Text = _datarow["Email"].ToString();
            lblPhone.Text = _datarow["Phone"].ToString();
            lblFax.Text = _datarow["Fax"].ToString();
            lblWebsite.Text = _datarow["Website"].ToString();

        }



        private void CreateCaptcha()
        {
            //string[] fonts = { "Arial Black", "Lucida Sans Unicode", "Comic Sans MS" };
            string[] fonts = { "Arial", "Helvetica", "sans - serif" };
            const byte LENGTH = 4;
            // chuỗi để lấy các kí tự sẽ sử dụng cho captcha
            const string chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//abcdefghijklmnopqrstuvwxyz";
            using (Bitmap bmp = new Bitmap(100, 30))
            {
                using (Graphics g = Graphics.FromImage(bmp))
                {
                    // Tạo nền cho ảnh dạng sóng
                    HatchBrush brush = new HatchBrush(HatchStyle.OutlinedDiamond, Color.LightGreen, Color.White);
                    g.FillRegion(brush, g.Clip);
                    // Lưu chuỗi captcha trong quá trình tạo
                    StringBuilder strCaptcha = new StringBuilder();
                    Random rand = new Random();
                    for (int i = 0; i < LENGTH; i++)
                    {
                        // Lấy kí tự ngẫu nhiên từ mảng chars
                        string str = chars[rand.Next(chars.Length)].ToString();
                        strCaptcha.Append(str);

                        // Tạo font với tên font ngẫu nhiên chọn từ mảng fonts
                        //Font font = new Font(fonts[rand.Next(fonts.Length)], 12, FontStyle.Strikeout | FontStyle.Italic);
                        Font font = new Font(fonts[rand.Next(fonts.Length)], 15, FontStyle.Bold);
                        // Lấy kích thước của kí tự
                        SizeF size = g.MeasureString(str, font);
                        // Vẽ kí tự đó ra ảnh tại vị trí tăng dần theo i, vị trí top ngẫu nhiên
                        //g.DrawString(str, font, Brushes.Chocolate, i * size.Width + 3, rand.Next(2, 10));
                        g.DrawString(str, font, Brushes.Green, i * size.Width + 1, rand.Next(3, 3));
                        font.Dispose();
                    }
                    // Lưu captcha vào session
                    Session["Contact_strCap"] = strCaptcha.ToString();
                    // Lưu ảnh vào thư mục captcha với tên ảnh dựa theo IP
                    string path = "../images/captcha/" + Request.UserHostAddress + ".gif";//".png"
                    string path2 = "../images/captcha/" + Request.UserHostAddress + ".gif?" + DateTime.Now.Ticks.ToString();//".png"
                    //bmp.Save(Server.MapPath("") + "/" + path, ImageFormat.Gif);
                    bmp.Save(Server.MapPath("") + "/" + path, ImageFormat.Gif);//ImageFormat.Gif
                    imgCaptcha.ImageUrl = path2;
                    //   Page.ClientScript.RegisterStartupScript(typeof(Page), "alert", "<script language=javascript>alert('" + _strCap + "')</script>");
                }
            }
        }

        protected void imbReload_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                Session["Contact_strCap"] = null;
                CreateCaptcha();
                //==>trả captcha mới
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Response.Redirect(ConstantClass._errorLoginPage);
            }
        }

        protected void btnSendFeebback_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtCaptcha.Text.Equals(Session["Contact_strCap"].ToString(), StringComparison.OrdinalIgnoreCase))
                {
                    _contact.ContactCreate(txtFullName.Text.Trim(), txtEmail.Text.Trim(), txtPhone.Text.Trim(), txtContent.Text.Trim());
                    txtFullName.Text = "";
                    txtEmail.Text = "";
                    txtPhone.Text = "";
                    txtContent.Text = "";
                    txtCaptcha.Text = "";
                    CreateCaptcha();

                    Page.ClientScript.RegisterStartupScript(typeof(Page), "alert", "<script language=javascript>alert('Đã gửi thư liên hệ tới trường.')</script>");
                }
                else
                {
                    Page.ClientScript.RegisterStartupScript(typeof(Page), "alert", "<script language=javascript>alert('Mã xác nhận chưa đúng. \\n Vui lòng nhập mã xác nhận mới.')</script>");

                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Response.Redirect(ConstantClass._errorLoginPage);
            }
        }
    }
}